define(['zepto', 'butterfly/view','../../bsl',
    'text!./geolocation.html'
], function($, View, bsl, geolocation) {
    var me = null;

    var view = View.extend({
        events: {

            // ！！！！ 由于 引入 touch.js 后，tap事件会变成双击，所以 本页面内不能使用tap，用click代替。
            "tap #openDoc" : "openDoc",
            "tap #back" : "back",
            "tap #getPos" : "getPos",
            "tap #watchPos" : "watchPos",
            "tap #clearWatch" : "clearWatch",
            "tap #getPosBaidu" : "getPosBaidu",

      
        },
        render: function() {
            me = this;
        },

        onShow: function() {

            // 绑定自定义事件 滑动切换日历等           


        },
         watchId:null,
        geoInf:function ( position ) {
            var str = "";
            str += "地址："+position.addresses+"\n";//获取地址信息
            var timeflag = position.timestamp;//获取到地理位置信息的时间戳；一个毫秒数；
            str += "时间戳："+timeflag+"\n";
            var codns = position.coords;//获取地理坐标信息；
            var lat = codns.latitude;//获取到当前位置的纬度；
            str += "纬度："+lat+"\n";
            var longt = codns.longitude;//获取到当前位置的经度
            str += "经度："+longt+"\n";
            var alt = codns.altitude;//获取到当前位置的海拔信息；
            str += "海拔："+alt+"\n";
            var accu = codns.accuracy;//地理坐标信息精确度信息；
            str += "精确度："+accu+"\n";
            var altAcc = codns.altitudeAccuracy;//获取海拔信息的精确度；
            str += "海拔精确度："+altAcc+"\n";
            var head = codns.heading;//获取设备的移动方向；
            str += "移动方向："+head+"\n";
            var sped = codns.speed;//获取设备的移动速度；
            str += "移动速度："+sped;
            outLine( str );
        },
        getPos:function () {
            console.info( "获取位置信息:" );
            bsl.geolocation.getCurrentPosition( this.geoInf, function ( e ) {
                console.info( "获取位置信息失败："+e.message );
            } );
        },
        watchPos:function () {
            if ( watchId ) {
                return;
            }
            watchId = bsl.geolocation.watchPosition( function ( p ) {
                console.info( "监听位置变化信息:" );
                this.geoInf( p );
            }, function ( e ) {
                console.info( "监听位置变化信息失败："+e.message );
            } );
        },
        clearWatch:function () {
            if ( watchId ) {
                console.info( "停止监听位置变化信息" );
                bsl.geolocation.clearWatch( watchId );
                watchId = null;
            }
        },
        // 通过百度定位模块获取位置信息
        getPosBaidu:function (){
            console.info( "获取百度定位位置信息:" );
            bsl.geolocation.getCurrentPosition( this.geoInf, function ( e ) {
                console.info( "获取百度定位位置信息失败："+e.message );
            },{provider:'baidu'});
        },
          back : function(e){
            window.history.go(-1);
        },
        openDoc:function(){
             window.butterfly.navigate('com.no5.cordovademo/doc/geolocation', {
                trigger: true
            });


        },
   
             
            });
    return view;
});
